package com.zyj.order.model;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class Product implements Serializable {
    @ApiModelProperty(value = "产品ID")
    private Integer id;

    private Integer productDeptId;

    @ApiModelProperty(value = "产品名称")
    private String productName;

    @ApiModelProperty(value = "产品别名，唯一")
    private String productAlias;

    @ApiModelProperty(value = "产品状态，1 正常，2下线")
    private Byte productStatus;

    private Integer createdId;

    private Date createdAt;

    private Integer updatedId;

    private Date updatedAt;

    private Integer qaLeaderId;

    private Integer devLeaderId;

    @ApiModelProperty(value = "DBA审核节点")
    private String traceDbaNode;

    @ApiModelProperty(value = "运维审核节点")
    private String traceOpsNode;

    private String traceRollbackNode;

    private Integer releaseScheduleTemplateId;

    @ApiModelProperty(value = "发布计划是否推送jira")
    private Boolean enablePushJira;

    @ApiModelProperty(value = "发布计划模板变更状态1、未变更；2、已变更")
    private Byte templateStatus;

    private Integer gitNamespaceId;

    @ApiModelProperty(value = "产品负责人")
    private Integer pmLeaderId;

    @ApiModelProperty(value = "DB发布DBA节点")
    private String traceDbNode;

    @ApiModelProperty(value = "DB结束节点")
    private String traceDbDbaNode;

    @ApiModelProperty(value = "是否展示产品1-展示，2-不展示")
    private Integer isShow;

    private Integer productAdminId;

    @ApiModelProperty(value = "流程代理人id")
    private Integer productAgentId;

    @ApiModelProperty(value = "产品线标识图片地址")
    private String productImageUrl;

    @ApiModelProperty(value = "产品线描述")
    private String productDescription;

    private static final long serialVersionUID = 1L;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getProductDeptId() {
        return productDeptId;
    }

    public void setProductDeptId(Integer productDeptId) {
        this.productDeptId = productDeptId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductAlias() {
        return productAlias;
    }

    public void setProductAlias(String productAlias) {
        this.productAlias = productAlias;
    }

    public Byte getProductStatus() {
        return productStatus;
    }

    public void setProductStatus(Byte productStatus) {
        this.productStatus = productStatus;
    }

    public Integer getCreatedId() {
        return createdId;
    }

    public void setCreatedId(Integer createdId) {
        this.createdId = createdId;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Integer getUpdatedId() {
        return updatedId;
    }

    public void setUpdatedId(Integer updatedId) {
        this.updatedId = updatedId;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Integer getQaLeaderId() {
        return qaLeaderId;
    }

    public void setQaLeaderId(Integer qaLeaderId) {
        this.qaLeaderId = qaLeaderId;
    }

    public Integer getDevLeaderId() {
        return devLeaderId;
    }

    public void setDevLeaderId(Integer devLeaderId) {
        this.devLeaderId = devLeaderId;
    }

    public String getTraceDbaNode() {
        return traceDbaNode;
    }

    public void setTraceDbaNode(String traceDbaNode) {
        this.traceDbaNode = traceDbaNode;
    }

    public String getTraceOpsNode() {
        return traceOpsNode;
    }

    public void setTraceOpsNode(String traceOpsNode) {
        this.traceOpsNode = traceOpsNode;
    }

    public String getTraceRollbackNode() {
        return traceRollbackNode;
    }

    public void setTraceRollbackNode(String traceRollbackNode) {
        this.traceRollbackNode = traceRollbackNode;
    }

    public Integer getReleaseScheduleTemplateId() {
        return releaseScheduleTemplateId;
    }

    public void setReleaseScheduleTemplateId(Integer releaseScheduleTemplateId) {
        this.releaseScheduleTemplateId = releaseScheduleTemplateId;
    }

    public Boolean getEnablePushJira() {
        return enablePushJira;
    }

    public void setEnablePushJira(Boolean enablePushJira) {
        this.enablePushJira = enablePushJira;
    }

    public Byte getTemplateStatus() {
        return templateStatus;
    }

    public void setTemplateStatus(Byte templateStatus) {
        this.templateStatus = templateStatus;
    }

    public Integer getGitNamespaceId() {
        return gitNamespaceId;
    }

    public void setGitNamespaceId(Integer gitNamespaceId) {
        this.gitNamespaceId = gitNamespaceId;
    }

    public Integer getPmLeaderId() {
        return pmLeaderId;
    }

    public void setPmLeaderId(Integer pmLeaderId) {
        this.pmLeaderId = pmLeaderId;
    }

    public String getTraceDbNode() {
        return traceDbNode;
    }

    public void setTraceDbNode(String traceDbNode) {
        this.traceDbNode = traceDbNode;
    }

    public String getTraceDbDbaNode() {
        return traceDbDbaNode;
    }

    public void setTraceDbDbaNode(String traceDbDbaNode) {
        this.traceDbDbaNode = traceDbDbaNode;
    }

    public Integer getIsShow() {
        return isShow;
    }

    public void setIsShow(Integer isShow) {
        this.isShow = isShow;
    }

    public Integer getProductAdminId() {
        return productAdminId;
    }

    public void setProductAdminId(Integer productAdminId) {
        this.productAdminId = productAdminId;
    }

    public Integer getProductAgentId() {
        return productAgentId;
    }

    public void setProductAgentId(Integer productAgentId) {
        this.productAgentId = productAgentId;
    }

    public String getProductImageUrl() {
        return productImageUrl;
    }

    public void setProductImageUrl(String productImageUrl) {
        this.productImageUrl = productImageUrl;
    }

    public String getProductDescription() {
        return productDescription;
    }

    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", productDeptId=").append(productDeptId);
        sb.append(", productName=").append(productName);
        sb.append(", productAlias=").append(productAlias);
        sb.append(", productStatus=").append(productStatus);
        sb.append(", createdId=").append(createdId);
        sb.append(", createdAt=").append(createdAt);
        sb.append(", updatedId=").append(updatedId);
        sb.append(", updatedAt=").append(updatedAt);
        sb.append(", qaLeaderId=").append(qaLeaderId);
        sb.append(", devLeaderId=").append(devLeaderId);
        sb.append(", traceDbaNode=").append(traceDbaNode);
        sb.append(", traceOpsNode=").append(traceOpsNode);
        sb.append(", traceRollbackNode=").append(traceRollbackNode);
        sb.append(", releaseScheduleTemplateId=").append(releaseScheduleTemplateId);
        sb.append(", enablePushJira=").append(enablePushJira);
        sb.append(", templateStatus=").append(templateStatus);
        sb.append(", gitNamespaceId=").append(gitNamespaceId);
        sb.append(", pmLeaderId=").append(pmLeaderId);
        sb.append(", traceDbNode=").append(traceDbNode);
        sb.append(", traceDbDbaNode=").append(traceDbDbaNode);
        sb.append(", isShow=").append(isShow);
        sb.append(", productAdminId=").append(productAdminId);
        sb.append(", productAgentId=").append(productAgentId);
        sb.append(", productImageUrl=").append(productImageUrl);
        sb.append(", productDescription=").append(productDescription);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}